using System;
using System.Data;

namespace TableGenerator
{
    public interface TableGenerator
    {
        DataTable GenerateTable();
    }

    public class AuditoriasTableGenerator: TableGenerator
    {
        public DataTable GenerateTable()
        {
            DataTable resultTeable = new DataTable("Auditorias");
            DataColumn col = new DataColumn("ID");
            resultTeable.Columns.Add(col);
            col = new DataColumn("Type");
            resultTeable.Columns.Add(col);
            col = new DataColumn("Size");
            resultTeable.Columns.Add(col);
            col = new DataColumn("Name");
            resultTeable.Columns.Add(col);
            return resultTeable;
        }
    }
    public class CurPeopleTableGenerator : TableGenerator
    {
        public DataTable GenerateTable()
        {
            DataTable resultTeable = new DataTable("CurPeople");
            DataColumn col = new DataColumn("IDRow");
            resultTeable.Columns.Add(col);
            col = new DataColumn("IDPeople");
            resultTeable.Columns.Add(col);
            col = new DataColumn("IDPara");
            resultTeable.Columns.Add(col);
            col = new DataColumn("IDGroupe");
            resultTeable.Columns.Add(col);
            col = new DataColumn("IDAuditoria");
            resultTeable.Columns.Add(col);
            col = new DataColumn("IDTeacher");
            resultTeable.Columns.Add(col);
            col = new DataColumn("IDTime");
            resultTeable.Columns.Add(col);
            col = new DataColumn("Kilk");
            resultTeable.Columns.Add(col);
            return resultTeable;
        }
    }
    public class DifferentGroupeTableGenerator : TableGenerator
    {
        public DataTable GenerateTable()
        {
            DataTable resultTeable = new DataTable("DifferentGroupe");
            DataColumn col = new DataColumn("ID");
            resultTeable.Columns.Add(col);
            col = new DataColumn("IDDifGroupe");
            resultTeable.Columns.Add(col);
            col = new DataColumn("Type");
            resultTeable.Columns.Add(col);
            col = new DataColumn("name");
            resultTeable.Columns.Add(col);
            return resultTeable;
        }
    }
    public class ParasTableGenerator : TableGenerator
    {
        public DataTable GenerateTable()
        {
            DataTable resultTeable = new DataTable("Paras");
            DataColumn col = new DataColumn("ID");
            resultTeable.Columns.Add(col);
            col = new DataColumn("IDDifGroupe");
            resultTeable.Columns.Add(col);
            col = new DataColumn("IDSubject");
            resultTeable.Columns.Add(col);
            col = new DataColumn("AuditoriasType");
            resultTeable.Columns.Add(col);
            col = new DataColumn("Kilk");
            resultTeable.Columns.Add(col);
            col = new DataColumn("IDAuditorias");
            resultTeable.Columns.Add(col);
            col = new DataColumn("IDTeaches");
            resultTeable.Columns.Add(col);
            col = new DataColumn("IDTime");
            resultTeable.Columns.Add(col);
            return resultTeable;
        }
    }
    public class ParasFullTableGenerator : TableGenerator
    {
        public DataTable GenerateTable()
        {
            DataTable resultTeable = new DataTable("Paras");
            DataColumn col = new DataColumn("ID");
            resultTeable.Columns.Add(col);
            col = new DataColumn("IDDifGroupe");
            resultTeable.Columns.Add(col);
            col = new DataColumn("DifGroupe");
            resultTeable.Columns.Add(col);
            col = new DataColumn("IDSubject");
            resultTeable.Columns.Add(col);
            col = new DataColumn("Subject");
            resultTeable.Columns.Add(col);
            col = new DataColumn("AuditoriasType");
            resultTeable.Columns.Add(col);
            col = new DataColumn("Kilk");
            resultTeable.Columns.Add(col);
            col = new DataColumn("IDAuditorias");
            resultTeable.Columns.Add(col);
            col = new DataColumn("IDTeaches");
            resultTeable.Columns.Add(col);
            col = new DataColumn("IDTime");
            resultTeable.Columns.Add(col);
            return resultTeable;
        }
    }

    public class ResParaTableGenerator : TableGenerator
    {
        public DataTable GenerateTable()
        {
            DataTable resultTeable = new DataTable("ResPara");
            DataColumn col = new DataColumn("ID");
            resultTeable.Columns.Add(col);
            col = new DataColumn("IDPara");
            resultTeable.Columns.Add(col);
            col = new DataColumn("IDGroupe");
            resultTeable.Columns.Add(col);
            col = new DataColumn("IDAuditoria");
            resultTeable.Columns.Add(col);
            col = new DataColumn("IDTeacher");
            resultTeable.Columns.Add(col);
            col = new DataColumn("IDTime");
            resultTeable.Columns.Add(col);
            col = new DataColumn("Kilk");
            resultTeable.Columns.Add(col);
            return resultTeable;
        }
    }
    public class SelectsForCostTableGenerator : TableGenerator
    {
        public DataTable GenerateTable()
        {
            DataTable resultTeable = new DataTable("SelectsForCost");
            DataColumn col = new DataColumn("IDSelect");
            resultTeable.Columns.Add(col);
            col = new DataColumn("Name");
            resultTeable.Columns.Add(col);
            col = new DataColumn("Select");
            resultTeable.Columns.Add(col);
            col = new DataColumn("Cost");
            resultTeable.Columns.Add(col);
            col = new DataColumn("Use");
            resultTeable.Columns.Add(col);
            return resultTeable;
        }
    }
    public class SmallGroupesTableGenerator : TableGenerator
    {
        public DataTable GenerateTable()
        {
            DataTable resultTeable = new DataTable("SmallGroupes");
            DataColumn col = new DataColumn("IDSmallGroupe");
            resultTeable.Columns.Add(col);
            col = new DataColumn("IDDifGroupe");
            resultTeable.Columns.Add(col);
            col = new DataColumn("IDSubGroupe");
            resultTeable.Columns.Add(col);
            return resultTeable;
        }
    }
    public class SmallGroupesFullTableGenerator : TableGenerator
    {
        public DataTable GenerateTable()
        {
            DataTable resultTeable = new DataTable("SmallGroupesFull");
            DataColumn col = new DataColumn("IDSmallGroupe");
            resultTeable.Columns.Add(col);
            col = new DataColumn("IDDifGroupe");
            resultTeable.Columns.Add(col);
            col = new DataColumn("name");
            resultTeable.Columns.Add(col);
            col = new DataColumn("Type");
            resultTeable.Columns.Add(col);
            col = new DataColumn("SubGroupeID");
            resultTeable.Columns.Add(col);
            col = new DataColumn("SubGroupe");
            resultTeable.Columns.Add(col);
            return resultTeable;
        }
    }
    public class SubGroupesTableGenerator : TableGenerator
    {
        public DataTable GenerateTable()
        {
            DataTable resultTeable = new DataTable("SubGroupes");
            DataColumn col = new DataColumn("ID");
            resultTeable.Columns.Add(col);
            col = new DataColumn("SubGroupe");
            resultTeable.Columns.Add(col);
            return resultTeable;
        }
    }
    public class SubjectsTableGenerator : TableGenerator
    {
        public DataTable GenerateTable()
        {
            DataTable resultTeable = new DataTable("Subjects");
            DataColumn col = new DataColumn("ID");
            resultTeable.Columns.Add(col);
            col = new DataColumn("Subject");
            resultTeable.Columns.Add(col);
            return resultTeable;
        }
    }

    public class TeachersTableGenerator : TableGenerator
    {
        public DataTable GenerateTable()
        {
            DataTable resultTeable = new DataTable("Teachers");
            DataColumn col = new DataColumn("ID");
            resultTeable.Columns.Add(col);
            col = new DataColumn("Name");
            resultTeable.Columns.Add(col);
            return resultTeable;
        }
    }

    public class TeacherSubjectTableGenerator : TableGenerator
    {
        public DataTable GenerateTable()
        {
            DataTable resultTeable = new DataTable("TeacherSubject");
            DataColumn col = new DataColumn("ID");
            resultTeable.Columns.Add(col);
            col = new DataColumn("IDTeacher");
            resultTeable.Columns.Add(col);
            col = new DataColumn("IDSubject");
            resultTeable.Columns.Add(col);
            return resultTeable;
        }
    }
    public class TeacherSubjectFullTableGenerator : TableGenerator
    {
        public DataTable GenerateTable()
        {
            DataTable resultTeable = new DataTable("TeacherSubject");
            DataColumn col = new DataColumn("ID");
            resultTeable.Columns.Add(col);
            col = new DataColumn("IDTeacher");
            resultTeable.Columns.Add(col);
            col = new DataColumn("TeacherName");
            resultTeable.Columns.Add(col);
            col = new DataColumn("IDSubject");
            resultTeable.Columns.Add(col);
            col = new DataColumn("Subject");
            resultTeable.Columns.Add(col);
            return resultTeable;
        }
    }
    public class TimesTableGenerator : TableGenerator
    {
        public DataTable GenerateTable()
        {
            DataTable resultTeable = new DataTable("Times");
            DataColumn col = new DataColumn("ID");
            resultTeable.Columns.Add(col);
            col = new DataColumn("Day");
            resultTeable.Columns.Add(col);
            col = new DataColumn("NoOfPair");
            resultTeable.Columns.Add(col);
            return resultTeable;
        }
    }
}